// 二次封装axios
import axios from 'axios'
import { Toast } from 'vant'
// 创建axios实例
const service = axios.create({
//   baseURL: 'http://www.xiongmaoyouxuan.com/api',
  baseURL: 'https://gw.kaola.com/gw',
  timeout: 3000
})

// 请求拦截
service.interceptors.request.use(config => {
// 统一添加请求加载轻提示效果。
  Toast.loading({
    message: '加载中...',
    forbidClick: true,
    duration: 0
  })
  // 向请求头中添加相关的 Header 头信息
  config.headers = {
    'X-Token': 'oijasdflakjsdfklasdjflakjdsflj'
  }
  return config
})
// 响应拦截
service.interceptors.response.use(res => {
// 关闭轻提示效果
  Toast.clear()
  // 对响应数据作处理
  if (res.status >= 200 && res.status < 300) {
    // 获取从后端接口中拿到的数据，该数据是前后端接口交互过程中的规范数据
    const apiData = res.data
    // 判断后端数据规范
    if (apiData.code === 200) { // 能够拿到成功的数据
      return apiData.data
    }
    // 如果 apiData.code 不为 200 则说明数据获取有异常
    const err = new Error('API 接口数据异常')
    err.response = apiData
    return Promise.reject(err)
  }
  // res.status 不以 2xx 开头，则说明请求可能有异常
  const e = new Error('API 请求异常')
  e.response = res
  return Promise.reject(e)
})
export default service
